home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / allocwg.com / ALLOC.H < prev    next >
Encoding:
C/C++ Source or Header  |  1988-11-10  |  1.5 KB  |  30 lines

  1.  
  2.      /*  Memory allocation definitions  */
  3.  
  4. typedef unsigned int size_t  ;   /* Storage units (MSC 5.1)          */
  5. typedef size_t       SUNIT   ;   /* Storage units (memory procs)     */
  6.  
  7. typedef struct sheader {         /* Storage header block             */
  8.    SUNIT         HeaderSize  ;   /* Size of header block             */
  9.    SUNIT         BytesUsed   ;   /* Bytes used for this block        */
  10.    SUNIT         Collapsed   ;   /* Collapsed flag for this block    */
  11.    SUNIT         LFBlock     ;   /* Largest free block size          */
  12. }  HEADER   ;                    /* (valid only if Collapsed=TRUE)   */
  13.  
  14. #define NALLOC     16            /* Number of bytes per paragraph    */
  15. #define SSIZE      sizeof ( SUNIT  )  /* Size of SUNIT               */  
  16. #define HSIZE      sizeof ( HEADER )  /* Size of HEADER              */
  17. #define MAXBLOCK   0xffff             /* Maximum block size          */
  18.                                       /* Maximum allocation possible */
  19. #define MAXALLOC   NALLOC * ( ( MAXBLOCK-HSIZE-SSIZE ) / NALLOC )
  20. #define MINALLOC   128                /* Minimum MBSize value        */
  21.  
  22. #define TRUE       1
  23. #define FALSE      0
  24. #define FREE       1                  /* FREE block indicator        */
  25.  
  26. typedef struct STable {          /* Allocated blocks table           */     
  27.    SUNIT     Size            ;   /* Size allocated for a block       */
  28.    HEADER   *Header          ;   /* Pointer to allocated block       */
  29. }  ATABLE  ;
  30.